﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aplicacion.Base.WinForm;
using BaseDatos.Comun;
using System.Data;
using BaseDatos;

namespace Modulo.Seguridad.Base
{
    public class LBOpcion:ColeccionBase
    {
        #region Campos
        public EFOpcion Filtros = null;
        #endregion
        #region Constructores
        public LBOpcion(EFOpcion FiltrosBusqueda)
            : base()
        {
            this.Filtros = FiltrosBusqueda;
        }

        public LBOpcion()
            : this(new EFOpcion())
        {
        }
        #endregion

        #region Métodos
        public virtual void Buscar()
        {
            try
            {
                ////Crea una matriz
                DbParametro[] Parametros = new DbParametro[2];
                Parametros[0] = new DbParametro("pcodmo", Filtros.CodigoOpcion);
                Parametros[1] = new DbParametro("pcodmod", Filtros.CodigoModulo);
                ////Consulta la base de datos y crea un dataset
                DataSet Ds = ConexionBaseDatos.Conexion.CrearDataSet("GETCK_MODULOXOPCION", Parametros);

                List.Clear();
                if (Ds.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow registro in Ds.Tables[0].Rows)
                    {
                        EBOpcion clase = new EBOpcion(registro);
                        List.Add(clase);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void Nuevo(EBOpcion opcion)
        {
            try
            {
                //EBCategoria LeadTime_ = new EBCategoria(TipoRuta_);
                //WFLeadTimeMant Frm = new WFLeadTimeMant(LeadTime_, EModoFormulario.Insertar);
                //if (Frm.ShowDialog() == DialogResult.OK)
                //{
                List.Add(opcion);
                //}
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void Modificar(EBOpcion _LeadTime)
        {
            try
            {
                //EBCategoria LeadTime = this[_LeadTime.TipoRuta, _LeadTime.Codigo];
                //if (LeadTime != null)
                //{
                //    WFLeadTimeMant Frm = new WFLeadTimeMant(LeadTime, EModoFormulario.Modificar);
                //    if (Frm.ShowDialog() == DialogResult.OK)
                //    {
                //        //
                //    }
                //}
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void Eliminar(EBOpcion Objeto)
        {
            try
            {
              //  ((EBOpcion)Objeto).Eliminar();
                List.Remove((EBOpcion)Objeto);
            }
            catch (Exception)
            {
                throw;
            }
        }

        //public  void Eliminar(EBOpcion _LeadTime)
        //{
        //    try
        //    {
        //        //EBOpcion LeadTime = this[_LeadTime];
        //        if (_LeadTime != null)
        //        {
        //           // LeadTime.Eliminar();
        //            List.Remove(_LeadTime);
        //        }
        //    }
        //    catch (Exception)
        //    {
        //        throw;
        //    }
        //}
        #endregion

    }
}
